// header.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    titlecolor: {
      type: String,
      value: 'white'
    },
    title: {
      type: String,
      value: ''
    },
    backgroundColor: {
      type: String,
      value: '#F6F6F6'
    },
    titleColor: {
      type: String,
      value: '#5A4027'
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    statusBarHeight: 0, // 状态栏高度
    headerHeight: 0, // 头部高度
    menuButtonInfo: {} // 胶囊按钮信息
  },

  /**
   * 组件生命周期
   */
  lifetimes: {
    attached() {
      this.initHeaderHeight();
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 初始化头部高度，实现自适应
     */
    initHeaderHeight() {
      try {
        // 获取系统信息
        const systemInfo = wx.getSystemInfoSync();
        // 获取状态栏高度
        const statusBarHeight = systemInfo.statusBarHeight;

        // 获取胶囊按钮位置信息
        const menuButtonInfo = wx.getMenuButtonBoundingClientRect();

        // 计算头部高度（胶囊按钮底部到顶部的距离）
        const headerHeight = menuButtonInfo.bottom - statusBarHeight;

        this.setData({
          statusBarHeight: statusBarHeight,
          headerHeight: headerHeight,
          menuButtonInfo: menuButtonInfo
        });

        // 触发自定义事件，将头部高度传递给父组件
        this.triggerEvent('headerHeightChange', {
          totalHeight: statusBarHeight + headerHeight,
          statusBarHeight: statusBarHeight,
          headerHeight: headerHeight
        });
      } catch (e) {
        console.error('获取系统信息失败:', e);
        // 降级处理，使用默认高度
        this.setData({
          statusBarHeight: 20,
          headerHeight: 44
        });
      }
    },

    /**
     * 返回上一页
     */
    onBackPress() {
      wx.navigateBack({
        delta: 1 // 返回上一页
      });
    }
  }
});